Delivering advertisements to mobile applications

ABSTRACT

A content provider can provide content, such as advertisements or other promotional material, for display by a mobile application. As contextual information is typically limited for mobile applications, the content provider can use other information in addition to or in place of contextual information to select advertisements. This information can include location information, user activity with regards to the mobile application, information regarding a recipient of the advertisement, such as demographic information, information regarding the mobile application, such as information regarding the type of mobile application, and product inventory information. A user profile also may be used to select advertisements. The user profile can include a set of merchants and merchant types, for example clothing retailers, to which a user may be more responsive. The user profiles can be generated and updated by logging merchants that the user visits or interacts with via advertisements.

TECHNICAL FIELD

The present disclosure relates generally to delivering advertisements,and more particularly to methods and systems for selectingadvertisements for presentation by mobile applications.

BACKGROUND

In many different environments, content providers want to distributecontent to selected recipients. For example, merchants want to provideadvertisements and promotional offers to customers that may beinterested in their products or services. One such avenue for providingadvertisements that is becoming increasingly popular is via mobileapplications. For example, an online video game application may presentadvertisements to a user that is playing the video game using a mobileelectronic device, such as a smartphone or tablet computer. Theadvertisement may be displayed somewhere along the perimeter of thedisplay screen such that the advertisement does not interfere with thegame itself.

In some instances, a content provider may rely on contextual informationwhen making decisions regarding selections of advertisements to provideto a recipient. For example, advertisers often use a search query orcontent presented on a web page to select advertisements to present to auser. However, selecting advertisements for display by a mobileapplication can be problematic due to the lack of contextual informationavailable as compared to search query or content based advertisement.Therefore, it is desirable to provide an improved mechanism forselecting advertisement and other content for delivery to mobileapplications.

SUMMARY

In certain exemplary embodiments, a computer-implemented method fordistributing content includes a computer receiving information regardinga location of a network device associated with a user and having thereona mobile application module. The computer determines whether thelocation is at or near a merchant based on the information regarding thelocation of the network device. In response to determining that thenetwork device is located at or near the merchant, the computer addsinformation regarding the merchant to a profile associated with the userof the network device. The computer receives, a request for anadvertisement to be presented to the user associated with the profile.The computer selects an advertisement in response to the request for anadvertisement. The selected advertisement is selected from availableadvertisements based on the merchant information in the profile. Thecomputer transmits the information regarding the selected advertisementin response to the request for an advertisement.

In certain exemplary embodiments, a computer-implemented method forreceiving content includes a computer, associated with a user,transmitting a request for content via a mobile application module. Thecomputer receives content in response to the request for content and atleast one advertisement. The at least one advertisement is selected fromavailable advertisements based on information in a profile associatedwith the user. The profile information includes an identification ofmerchants which the user has previously visited based on locationinformation provided by the computer. The computer presents the contentand the at least one advertisement.

In certain exemplary embodiments, a computer-implemented method forstoring information includes a computer receiving information regardinga location of a network device associated with a user. The computerdetermines whether the location is at or near a merchant based on theinformation regarding the location of the network device. In response todetermining that the network device is located at or near the merchant,the computer adds information regarding the merchant to a profileassociated with the user of the network device.

These and other aspects, objects, features, and advantages of theexemplary embodiments will become apparent to those having ordinaryskill in the art upon consideration of the following detaileddescription of illustrated exemplary embodiments, which include the bestmode of carrying out the invention as presently perceived.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram depicting a system for providing content forpresentation by a mobile application, in accordance with certainexemplary embodiments.

FIG. 2 is a block flow diagram depicting a method for providing anadvertisement for display by a mobile application, in accordance withcertain exemplary embodiments.

FIG. 3 is a block flow diagram depicting a method for creating andmaintaining merchant information for a user profile, in accordance withcertain exemplary embodiments.

DETAILED DESCRIPTION OF EXEMPLARY EMBODIMENTS Overview

The methods and systems described herein enable a content provider toselect and deliver advertisements or other content to a recipient via amobile application. For the purpose of this specification, a mobileapplication is an application module executable by a mobile electronicdevice and having capabilities to interact with another computing devicevia a network. The system includes an advertisement distribution system,which is implemented in hardware and/or software. An advertisementselection engine of the advertisement distribution system selects fromavailable advertisements or other content to provide to a recipient viathe mobile application.

In certain exemplary embodiments, the advertisement selection engineselects from available advertisements based on information stored in aprofile for the user. This information can include information regardingthe mobile application, information regarding the user, informationregarding locations the user has visited, including a list of merchantsor other entities that the user has visited, information regarding adevice of the user that hosts the mobile application, informationregarding other applications or devices installed on the device, and/orinformation regarding how the user utilizes the device. A profilermodule can use the profile information to generate a set of candidatemerchants or other advertisers and use the set of candidate merchants toselect advertisements to serve to the user. In addition to merchants,the list may contain a list of other advertisers that the user may beinterested in receiving information from including, but not limited to,nonprofit organizations, charitable organizations, churches, schools,individuals, and events. For example, if a user often passes ornavigates near a location of an event that may be of interest to a user,the profiler may add that event to the set of candidate merchants. Whenthe user interacts with the mobile application, the advertisementselection engine may transmit an advertisement to the event to theuser's device for display by the mobile application.

In certain exemplary embodiments, the user profile includes a list ofmerchants and/or other types of entities that the user has visited orhas been determined to be near. In exemplary embodiments, a user may beconsidered to be “near” a merchant if the user is just outside themerchant's location, if the user is close enough to see the merchant'slocation, or if the user is within a predetermined distance of themerchant's location where the predetermined distance can be defined by asystem operator as desired.

Users may be allowed to limit or otherwise affect the operation of thefeatures disclosed in the specification. For example, users may be givenopportunities to opt-in or opt-out of the collection or use of certaindata or the activation of certain features. In addition, users may begiven the opportunity to change the manner in which the features areemployed, including for situations in which users may have concernsregarding their privacy. Instructions also may be provided to users tonotify them regarding policies about the use of information, includingpersonally identifiable information, and manners in which they mayaffect such use of information. Thus, sensitive personal information canbe used to benefit a user, if desired, through receipt of relevantadvertisements or other information, without risking disclosure ofpersonal information or the user's identity.

One or more aspects of the exemplary embodiments may include a computerprogram that embodies the functions described and illustrated herein,wherein the computer program is implemented in a computer system thatcomprises instructions stored in a machine-readable medium and aprocessor that executes the instructions. However, it should be apparentthat there could be many different ways of implementing the exemplaryembodiments in computer programming, and the exemplary embodimentsshould not be construed as limited to any one set of computer programinstructions. Further, a skilled programmer would be able to write sucha computer program to implement an embodiment based on the appended flowcharts and associated description in the application text. Therefore,disclosure of a particular set of program code instructions is notconsidered necessary for an adequate understanding of how to make anduse the exemplary embodiments. The functionality of the exemplaryembodiments will be explained in more detail in the followingdescription, read in conjunction with the figures illustrating theprogram flow.

Turning now to the drawings, in which like numerals indicate like (butnot necessarily identical) elements throughout the figures, exemplaryembodiments are described in detail.

System Architecture

With reference to FIG. 1, a system 100 for providing content can be usedto provide content to users of mobile applications. As depicted in FIG.1, the system 100 includes network devices 105, 110, 140, and 170 thatare configured to communicate with one another via one or more networks107. Each network 107 includes a wired or wireless telecommunicationmeans by which network devices (including devices 105, 1 10, 140, 170)can exchange data. For example, each network 107 can include a localarea network (“LAN”), a wide area network (“WAN”), an intranet, anInternet, a mobile telephone network, or any combination thereof.Throughout the discussion of exemplary embodiments, it should beunderstood that the terms “data” and “information” are usedinterchangeably herein to refer to text, images, audio, video, or anyother form of information that can exist in a computer-basedenvironment.

Each network device 105, 110, 140, 170 includes a device having acommunication module capable of transmitting and receiving data over thenetwork 107. For example, each network device 105, 110, 140, 170 caninclude a server, desktop computer, laptop computer, tablet computer,smartphone, handheld computer, personal digital assistant (“PDA”), orany other wired or wireless, processor-driven device. In the exemplaryembodiment depicted in FIG. 1, the network devices 105, 110, 140, 170are operated by advertisers, an information provider, an end user, andan application provider, respectively.

Each end user network device 140 includes at least one mobileapplication module having an application interface 143. The applicationinterface 143 is operable to display content in a display area 145, suchas content received from the application provider network device 170.Thus, each mobile application is capable of communicating with anapplication provider network device 170 associated with the mobileapplication. The application interface 143 is further operable todisplay advertisements 147 a-147 c, or other selected content, in asecond area 147 of the application interface 143. In certain exemplaryembodiments, the advertisements are selected from an advertisementrepository 123, which is maintained by an advertisement distributionsystem 120 of the information provider network device 110.

In addition to the advertisement repository 123, the advertisementdistribution system 120 includes an advertisement selection engine 121that selects advertisements from available advertisements in theadvertisement repository 123 for delivery to a user, an advertisementindex 122 that stores information associated with the advertisementsstored in the advertisement repository 123, a profiler 126, and aprofile index 127.

The exemplary system 100 is described in more detail hereinafter withreference to the method illustrated in FIG. 2.

System Process

FIG. 2 is a block flow diagram depicting a method 200 for providingadvertisements for display by a mobile application, in accordance withcertain exemplary embodiments. The method 200 is described withreference to the components illustrated in FIG. 1.

In block 205, the advertisement distribution system 120 maintains theadvertisement repository 123 and an advertisement index 122. Theadvertisement repository 123 includes a data structure, such as one ormore databases and/or one or more electronic records, that includesadvertisements. Alternatively, the advertisements are maintained by therespective advertisers, such as at one of the advertiser devices 105.The advertisements can include text, images, audio, video creatives, orany other form of information that can exist in a computer basedenvironment. The advertisements can include any type of content,including coupons, discounts, offers, product ratings, product reviews,pricing information, inventory or availability of a product, productcategory information, a message, a public service announcement,information regarding an event, individual or other entity, or merchantlocation information, to name a few examples.

The advertisement index 122 also includes a data structure, such as oneor more databases and/or one or more electronic records, that includes alist of the advertisements available in the advertisement repository 123and information regarding the advertisements. This information regardingthe advertisements can include, but is not limited to, advertisementperformance information and criteria for providing the advertisement toa user. The advertisement performance information can includeinformation regarding the advertisement's performance for certain mobileapplications and/or information regarding the advertisement'sperformance for certain users. For example, the advertisementperformance information can include clickthrough rates for anadvertisement when the advertisement is presented to a user and/or aclickthrough rate for the advertisement when the advertisement ispresented for particular mobile applications or categories of mobileapplications. A clickthrough rate indicates how often an advertisementis selected in response to being presented.

The criteria for providing the advertisement can include informationspecifying mobile applications or categories of mobile applications towhich to provide the advertisement, types of interaction with the mobileapplication in response to which to provide the advertisement, timeperiods to provide the advertisement, location information for providingthe advertisement, and any other criteria for selecting advertisements.The advertisement index 122 also can include bid information identifyingthe bid price the advertiser 105 is willing to pay for the advertisementto be served to a recipient. The criteria also can include user profilecriteria. For example, an advertiser can specify that an advertisementbe sent to a user having certain information in their user profile.

In certain exemplary embodiments, the advertisement index 122 alsoincludes, for each advertisement, information identifying a merchant orother entity associated with the advertisement and a category or type ofmerchant or entity. For example, merchant categories may include grocerystores, electronic retailers, restaurants, shoe stores, fuelingstations, convenience stores, and any other type of merchant. Forsimplicity, the term merchant is used herein to refer to merchants,manufacturers, retailers, and others that sell products or services tocustomers. Additionally, as used throughout this specification, the term“product” should be interpreted to include tangible and intangibleproducts, as well as services. Although the exemplary embodiments arelargely described in terms of advertisements associated with merchants,the advertisements can be associated with other entities, such asnon-profits, individuals, public service announcements, or charitableorganizations.

In block 210, a user accesses a mobile application using the end usernetwork device 140. For example, the user may actuate an icon displayedon a desktop interface of the end user network device 140. In response,the end user network device 140 initiates the mobile application and themobile application presents the application interface 143 via a displayscreen of the end user network device 140.

In block 215, the mobile application accessed by the user sends arequest for content to the application provider network device 170. Therequest for content can be in response to the user's interaction withthe mobile application. For example, if the mobile application is asocial networking application, a request for content may be transmittedin response to the user selecting a link to the user's messages orvirtual wall. In another example, a financial account application mayissue a request for content in response to the user selecting a link toaccount information. The request for content also may be madeautomatically, for example, in response to the user accessing the mobileapplication. For example, a weather application may transmit a requestfor the current weather at the user's current location in response tobeing accessed.

The mobile application can transmit additional information along withthe request for content. For example, the mobile application may beconfigured to transmit information that can be used by the applicationprovider network device 170 or the information provider network device110 to select content, such as one or more advertisements to send to theend user network device 140 In certain exemplary embodiments, the mobileapplication can interact with other devices installed on or coupled tothe end user network device 140 to obtain information.

In certain exemplary embodiments, the mobile application includesinformation associated with the mobile application with the request forcontent. This information associated with the mobile application caninclude, but is not limited to, a category for the mobile application,information regarding the user's current and/or historical interactionwith the mobile application, and user login information for the mobileapplication. The request for content also can include current and/orhistorical location information for the end user network device 140obtained from a global positioning system (“GPS”) device (not shown) ofthe end user network device 140. For example, the GPS device or anotherdevice can log the user's locations and the mobile application canobtain this location log and transmit the log along with the request forcontent.

The request for content also can include information regarding the enduser network device 140, such as information regarding otherapplications installed on the end user network device 140, the type andversion of the end user network device 140, version information for themobile application or the other applications installed on the end usernetwork device 140, and capabilities of the end user network device 140.For example, if the end user network device 140 is a mobile telephone,the request may include version information for the phone and certaincapabilities of the telephone.

In certain exemplary embodiments, the mobile application or anotherapplication installed on the end user network device 140 maintains adata file for the user and the request for content can includeinformation from the user's data file. This data file may include thelocation log discussed above, information regarding social networkingfriends of the user, information contained in the user's contacts, andthe user's reviews of locations that the user has visited. Otherinformation also can be stored in the user's data file, such as the nameand categories of the applications that the user interacts with,detailed information regarding the interactions with the applications,web browsing history, and information regarding how the user uses theend user network device 140, such as information identifying whether theuser utilizes a data plan of a mobile telephone or informationidentifying whether the user plays games or listens to music using theend user network device 140. Of course, the user may be given theopportunity to opt-in or opt-out of the transmission and use of some orall of the aforementioned information that can be included with therequest for content.

In block 220, the application provider 170 receives the request forcontent. In block 225, the application provider 170 transmits anadvertisement request to the information provider network device 110.For example, the application provider 170 may transmit the advertisementrequest in response to the request for content. The advertisementrequest can include the information included in the request for content.For example, the advertisement request can include information regardingthe mobile application that the user accessed, including the categoryfor the mobile application, current application interaction information,and historical application interaction information. As an example ofapplication interaction information, a social networking application mayinclude in an advertisement request a list of merchants for which theuser has indicated an affinity via the social networking application. Asanother example of application interaction information, a travel orweather application may include in the advertisement request informationregarding a location the user has researched.

The advertisement request also can include certain informationassociated with the user. For example, the advertisement request mayinclude demographic information, current location information,historical location information, and/or historical performanceinformation obtained from prior advertisement selections for the user.Typically, the advertisement request does not include information thatwould identify the user. Instead, profile information, such as age andgender may be included in the advertisement request while the user'sname or other identifying information is excluded to protect the user'sprivacy. Additionally, the user may specify what, if any, informationmay be provided in an advertisement request in certain exemplaryembodiments.

The advertisement request also can include other information for use inselecting advertisements, such as information regarding a number andtype of advertisements to select. For example, the area 147 of theapplication interface 143 may include space for three advertisementshaving a certain amount of text and a small image only. In this example,the application provider 170 may request three advertisements thatinclude the desired content, namely text and an image.

In block 230, the information provider network device 110 receives theadvertisement request. In block 235, the advertisement selection engine121 of the advertisement distribution system 120 selects one or moreadvertisements from the advertisement repository 123 based on theinformation contained in the advertisement request. For example, theadvertisement selection engine 121 selects a desired number ofadvertisements having a desired format based on the category for themobile application, the user's interaction with the mobile application,information associated with the user, user location information, dateand time information, advertisement performance information, criteriaspecified by the application provider 170, and/or other informationincluded in the advertisement request.

The advertisement selection engine 121 also can select advertisementsbased on the information contained in a user profile of the user. Theprofiler 126, which can be implemented in hardware and/or software,maintains a user profile for a multitude of users in the profile index127. The profile index 127 includes a data structure, such as one ormore databases and/or electronic records, that store each user'sprofile. Each user profile can include a multitude of informationregarding the user. This information can include information regardingmerchants and types or categories of merchants that the user has visitedor with which the user has interacted, for example, by interacting withone or more advertisements associated with the merchant.

Each user profile can include a list of merchants or other entities thatthe user associated with the user profile has visited or interacted withand the number of times that the user visited or interacted with eachmerchant. The list of merchants also may include particular merchantlocations that the user visited and the number of times that the uservisited each merchant location. The user profile also can include a listof merchant categories associated with the merchants that the uservisited or interacted with and the number of times that the user visitedor interacted with merchants in that merchant category. The list ofmerchants also can include merchants that the user has been locatednear.

As described in more detail in connection with FIG. 3, the profiler 126can update the user profile with information regarding merchants that auser visits by comparing location information for an end user networkdevice 140 associated with the user to location information for amultitude of merchants. If the end user network device 140 is at or neara merchant location, the profiler 126 may update the user's profile toreflect that the user visited that merchant. The profiler 126 also maylog location information irrespective of merchant locations. Forexample, the profiler 126 may log GPS coordinates, city names, roadstraveled on, or any other type of location information that can beobtained from the end user network device 140.

In certain exemplary embodiments, the location of a user may be obtainedvia near field communication (“NFC”) check-in points. For example, amerchant may have an NFC check-in point that the user can place the enduser network device 140 near to checkin. The NFC check-in point can thencommunicate information regarding the end user network device 140 to theinformation provider 110 and the profiler 126 can update the user'sprofile to indicate that the user visited that merchant location.

The profiler 126 also can include information in the user profiles otherthan merchant and location information. In certain exemplaryembodiments, the profiler 126 updates a user's profile based on theinformation received in an advertisement request associated with theuser. For example, the profiler 126 may log device use patterns, nameand categories of the applications that the user interacts with,detailed information regarding the interactions with the applications,web browsing history, and information regarding how the user uses theend user network device 140, such as information identifying whether theuser utilizes a data plan of a mobile telephone or informationidentifying whether the user plays games or listens to music using theend user network device 140. The user profile also may includeinformation regarding the user's end user network device 140, such asinformation identifying the type of end user network device 140, thecapabilities of the end user network device 140, and the version of theend user network device 140. The user profiles also may includedemographic information for the user.

The user profiles also can include merchant and product informationobtained from other sources. In certain exemplary embodiments, the enduser network device 140 includes a digital wallet that is used tocomplete purchases and stores information associated with thosepurchase. In such an embodiment, the profiler 126 may receive thisinformation directly from the digital wallet or via the applicationprovider 170. In certain exemplary embodiments, the profiler 126 iscapable of extracting merchant, product, and merchant locationinformation from receipts, bank or credit card statements, or otherfinancial documents of the user. For example, these documents may bestored in the digital wallet, in an account with the informationprovider 110, or in an e-mail account. In another example, theinformation provider 110 may be given access (by the user) to the user'se-mail account and can scan the e-mail account for transaction orfinancial records to extract this information. In yet another example,the user may send documents, such as scan of a receipt, to theinformation provider 110 to include in the user's profile.

As described in more detail below in connection with block 275 of FIG.2, the profiler 126 also can receive information regarding whatadvertisements the user has interacted with and update the user'sprofile to reflect that the user interacted with the merchantsassociated with the advertisements that the user interacted with. Thus,the user profile of a user includes an indication of merchants and typesof merchants for which the user has shown an affinity.

In certain exemplary embodiments, the profiler 126 uses the list ofmerchants, the list of merchant categories, and other information storedin the user's profile to generate a set of candidate merchants and a setof candidate merchant categories for the user as discussed in furtherdetail in connection with FIG. 3. The advertisement selection engine 121uses the information stored in the user's profile and the informationreceived with the advertisement request to select advertisements totransmit to the end user network device 140. Generally, theadvertisement selection engine 121 selects advertisements that are morelikely to be selected by the user. In some embodiments, theadvertisement selection engine 121 considers a bid price for eachadvertisement along with a predicted clickthrough rate to selectadvertisements that provide the most value to the information provider110.

In certain exemplary embodiments, the advertisement selection engine 121compares the set of candidate merchants and the set of candidatemerchant categories to the merchant and merchant categories foradvertisements stored in the advertisement repository 123 to selectadvertisements in which the user may be interested. For example, if anadvertisement is for a merchant that is included in the user's set ofcandidate merchants, then that advertisement may be selected or ratedhigher than an advertisement for a merchant that is not included in theset of candidate merchants. The set of candidate merchants and the setof merchant categories can be used in addition to the informationreceived in the advertisement request to select advertisements that arelikely to be interesting to the user.

The set of candidate merchants and/or set of candidate merchantcategories also can be used to reduce the number of availableadvertisements for the user. In one example, advertisements that areassociated with a merchant and a merchant category that are not includedin the set of candidate merchants and the set of candidate merchantcategories may be eliminated from consideration by the advertisementselection engine 121.

In certain exemplary embodiments, the number of visits and interactionsfor a merchant is used to rank or score advertisements for a user. Forexample, an advertisement for a merchant that the user visited only oncemay be ranked lower than an advertisement for a merchant that the uservisits frequently. Similarly, an advertisement for a merchant whoseadvertisements the user rarely selects may be ranked lower than anadvertisement associated with a merchant whose advertisements the useroften selects.

The advertisement selection engine 121 also can consider inventoryinformation for a product to select advertisements. For example, theadvertisement selection engine 121 may determine from locationinformation included in the advertisement request that the user iswithin a certain distance of a merchant that has excess inventory of aproduct. In response, the advertisement selection engine 121 may selectan advertisement for that product and that merchant having the excessinventory of the product. The merchants that provide advertisements viathe advertisement distribution system 120 can provide inventoryinformation to the advertisement distribution system 120, for example,on a periodic basis.

In one particular example of the advertisement selection process, theadvertisement selection engine 121 can use the current location of theuser along with the set of candidate merchants and information regardingthe mobile application to select from available advertisements in theadvertisement repository 123. For example, if the mobile application isa restaurant reservation application and the user (as determined by thelocation information associated with the user device 140) is proximal toa restaurant where the user often dines or another location in a chainof restaurants where the user often dines, then the advertisementselection engine 112 may select an advertisement or other contentassociated with that restaurant or chain of restaurants.

In another particular example, the advertisement selection engine 121may select advertisements for merchants that are include in the user'sprofile or that has exceeded a number of visits to that merchant basedon information stored in the user's profile. For example, if a user hasvisited a particular grocery store a certain number of times, theadvertisement selection engine 121 may select a promotional offer forthat grocery store to serve as an advertisement. Or, the advertisementselection engine 121 may select an advertisement for a competitor of amerchant that is included in the user's profile or that has been visitedby the user a predetermined number of times. For instance, a competitormay want to send a promotional offer to a user to entice that user tovisit a location of the competitor instead. In another example, if twocompeting merchants are represented in the user's profile, theadvertisement selection engine 121 may select an advertisement for oneof the merchants based on certain criteria. For instance, if one of themerchants has been visited more times by the user, then the othermerchant having less visits may want to send promotional offer to theuser.

The advertisement selection engine 121 also may select advertisementsfor products based on information stored in the user's profile. Forexample, a manufacturer of a particular product may want to send anadvertisement or promotional offer to a user that is known to purchase acompeting product based on information stored in the user's profile. Inanother example, the advertisement selection engine 121 may selectadvertisements for accessories to a product purchased by the user asnoted in the user's profile.

The advertisement selection engine 121 also may select the format inwhich the selected advertisements are displayed. The advertisementselection engine 121 may select from multiple available formats based onthe same or similar criteria used to select the advertisements. Forexample, one exemplary format for displaying advertisements includesdisplaying a single product from one or multiple advertisers 105. Thisexemplary format may display an image for the product and a price atwhich each respective advertiser 105 is offering the product. Anotherexemplary format includes a set of similar products to be displayed in asingle or small number of advertisement units. Yet another exemplaryformat includes a set of products and sale information, coupons,discounts, or promotional offers focused on displaying relevantpromotion information as the primary advertisement unit. Yet anotherexemplary format includes a set of related products, for example, aprimary product and one or more accessories, to be displayed as a singleadvertisement unit. Yet another exemplary format includes a larger setof products in a sorted order for display as a list of advertisementunits.

In certain exemplary embodiments, the advertisement selection engine 121selects the format for displaying the selected advertisements usinginformation regarding the mobile application, such as category for themobile application, information regarding the user, such as userprofile, user history, and user interests, information regarding theadvertisements, such as advertisement category and type ofadvertisement, and history of the user's interaction withadvertisements, such as user advertisement selections and usersadvertisement views using the mobile application.

In block 240, the information provider network device 110 transmitsinformation regarding the selected advertisements (“advertisementselection information”) to the application provider 170. For example,the advertisement selection information can include informationsufficient to enable the application provider 170 to cause theadvertisements to be displayed or otherwise presented by the applicationinterface 143. In certain exemplary embodiments, the advertisementselection information includes information that identifies the selectedadvertisements such that the application provider 170 or the end usernetwork device 140 can retrieve a copy of the advertisements from therespective advertisers 105, such as from an advertisement repository(not shown) of the advertiser 105.

In block 245, the application provider 170 retrieves the contentrequested in block 215. For example, a weather application running onthe end user network device 140 may request weather information in thelocation of the end user network device 140. In response, theapplication provider 170 may access the requested weather informationfrom a database or other storage device. In block 250, the applicationprovider 170 transmits the requested content and the advertisementselection information to the end user network device 140.

In block 250, the end user network device 140 receives the content andadvertisement selection information transmitted by the applicationprovider 170. In block 255, the end user network device 140 presents thecontent and the selected advertisements via the application interface143. For example, the content and selected advertisements can bedisplayed together in a display area. In certain exemplary embodiments,the selected advertisements are displayed along the perimeter of thedisplay area 145 that displays the content so not to interfere with thecontent. For example, as illustrated in FIG. 1, the advertisements 147a-147 c are displayed on one side of the display area 145.

Many other formats and techniques also can be used, as desired by theuser, the application provider 170, the information provider 110, andthe advertiser 105. For example pop-up windows, pop-under windows,and/or banner ads, or other display formats can be used. Additionally,the selected advertisements can be displayed while the applicationprovider 170 retrieves the requested content or after the applicationprovider 170 has transmitted the requested content. Thus, theadvertisement selection information can be transmitted from theapplication provider 170 to the end user network device 140 separatefrom the requested content.

Regardless of how the selected advertisements are displayed, when theuser interacts with the advertisements in block 260, such as by clickingon the display of the advertisement or by hovering a cursor over theadvertisement, the end user network device 140 transmits a request foradditional information from the advertiser 150, such as by following alink to a web page selected by the advertiser 105, as well as transmitsinformation regarding the interaction to the information providernetwork device 110 in block 265. For example, when a user clicks on adisplayed advertisement, the end user network device 140 may processHTML code that causes a web browser window to open with additionalinformation relating to the request, such as a printable coupon, adisplay advertisement, or a selected page of the advertiser's web site.In certain exemplary embodiments, interacting with the advertisementscan cause a change to an account of the user with the advertiser 105,such as by adding an item for purchase to the user's virtual shoppingcart of the advertiser's electronic commerce web site, or by applying adiscount to one or more items in the user's shopping cart (includingitems subsequently added to the shopping cart).

In block 270, the advertisement distribution system 120 updates theadvertisement index 122, or other storage device, with informationregarding the interaction with the advertisement. For example, theadvertisement distribution system 120 can update the advertisement index122 to indicate that the advertisement was hovered over or clicked on.In addition, if any advertisements were displayed but not interactedwith, the advertisement distribution system 120 can update theadvertisement index 123 to reflect that the advertisement did not resultin any interaction. This information can be used to improve theperformance of subsequent advertisement selections, for determining afee to be charged to the advertiser 105, or for other purposes.

In block 275, the profiler 126 updates the profile for the user in theprofile index 127 to indicate the merchant and merchant type associatedwith the advertisement that received an interaction. For example, if theuser clicked on an advertisement for a car dealership, the profiler 126may update the profile of the user to reflect that the user interactedwith an advertisement for that dealership and that the user interactedwith an advertisement in a car dealership category or type of merchant.As discussed above, the profile index 127 can include, for each user, alist of merchants that the user has visited or has interacted with viaone or more advertisements and a list of merchant types or categories ofmerchants that the user has visited or interacted with. The profiler 126can update these lists based on the information regarding theinteraction with the advertisement. The profiler 126 also can update theset of candidate merchants and merchant types to which the user may bemore responsive based on the updated lists.

After block 275, the method 200 ends. Of course, the applicationprovider 170 can continue to receive requests for content and deliverrequested content and advertisements to end user network devices 140.

FIG. 3 is a block flow diagram depicting a method 300 for creating andmaintaining merchant information for a user profile, in accordance withcertain exemplary embodiments. The method 300 is described withreference to the components illustrated in FIG. 1.

In block 305, the profiler 126 creates a profile for a user in theprofile index 127. In certain exemplary embodiments, the profiler 126creates the profile in response to the user registering to receiveadvertisements from the advertisement distribution system 120. Incertain exemplary embodiments, the profiler 126 creates the profile inresponse to the user registering for an account with the applicationprovider 170 or in response to the user downloading a mobile applicationfrom the application provider 170 to the end user network device 120.For example, the application provider 170 may provide an anonymousidentifier for the user and transmit that anonymous identifier to theadvertisement distribution system 120 with a request to create anaccount for the user. The anonymous identifier can be arbitrary orotherwise not capable of being used by a third party or by theinformation provider 110 to identify the user to which the identifierrelates. Therefore, the identifiers can be used within the system 100 asanonymous identifiers of the users. The anonymous identifiers can bereplaced with new identifiers periodically to further enhance privacyprotections.

The profiler 126 creates a list of merchants, a list of merchantcategories, a set of candidate merchants, and a set of candidatemerchant categories and stores this information in the profile index127. Typically, these lists and sets of data are unpopulated when theaccount is initialized and are populated based on user actions, such asvisiting a merchant or interacting with an advertisement associated witha merchant.

In certain exemplary embodiments, the user's profile also includesinformation that identifies the end user network device 140 associatedwith the user, such as a mobile telephone number for the end usernetwork device 140. This information can be used to help log the user'slocation and update the user's profile. The user may be given theopportunity to opt out of or limit the capabilities of this feature.

In block 310, the end user network device 140 obtains current locationinformation indicating the current location of the end user networkdevice 140 and transmits the location information to the informationprovider network device 110. For example, the end user network device140 may include a GPS device installed thereon and the locationinformation is obtained from the GPS device. In another example, theuser may enter a current location manually via the applicationinterface.

In certain exemplary embodiments, the end user network device 140transmits location information to the information provider networkdevice 110 on a periodic basis, such as once every minute. In certainexemplary embodiments, the end user network device 140 transmitslocation information to the information provider network device 110 inresponse to a request. For example, the information provider networkdevice 110 may issue a request for the current location of the end usernetwork device 140 on a periodic basis or when a content request iscommunicated or received from the end user network device 140.

In certain exemplary embodiments, the end user network device 140transmits location information in response to the end user networkdevice 140 being located in or proximal to a merchant. For example, theend user network device 140 may include a database of merchant locationsand location information may be compared to the database periodically.If the location of the end user network device 140 matches or isproximal to a merchant, then the end user network device 140 cantransmit the location information and/or information identifying themerchant that the end user network device 140 is located at or near.

In certain exemplary embodiments, rather than receiving locationinformation directly from the end user network device 140, theinformation provider network device 110 may receive location informationvia the application provider 170 or another source. For example, theapplication provider 170 may obtain information regarding the locationof the end user network device 140 with a request for content and, inturn, provide the location information to the information providernetwork device 110. Alternatively, a network providing service to theend user device 140 can determine the location of the end user device140 and can provide that location information to the informationprovider network device 110.

In block 315, the information provider network device 110 receives thelocation information identifying the current location of the end usernetwork device 140. In block 320, the profiler 126 compares the locationinformation to a database or another storage device containing locationinformation for a multitude of merchants to determine whether the enduser network device 140 is at or near one of the merchants. In block325, if the profiler 126 determines that the end user network device 140is located at or near one of the merchants, the method 300 follows the“Yes” branch to block 330. Otherwise, the method 300 follows the “No”branch to block 310 where the end user network device 140 againtransmits location information to the information provider networkdevice 110.

In block 330, the profiler 126 updates the profile for the user withinformation regarding the merchant that user network device 140 isdetermined to be at or near (“matching merchant”). If the matchingmerchant was not previously on the list of merchants for the user, theprofiler 126 adds the information identifying the matching merchant tothe list of merchants in the user's profile. If the matching merchant isalready included in the list of merchants in the user's profile, theprofiler 126 may update a count for the number of times the user hasvisited the matching merchant. Similarly, the profiler 126 updates thelist of merchant types based on the type or category of the matchingmerchant. The profiler 126 may update a count for that type or categoryof merchant.

In block 335, the profiler 126 updates the candidate set of merchantsand merchant types in the user's profile based on the updated list ofmerchants and the updated list of merchant types. The profiler 126 canuse the information stored in the user's profile to determine whatmerchants and types of merchants to include in the candidate set ofmerchants and the candidate set of merchant categories. For example, theprofiler 126 may evaluate the activity of the user with regards to theend user network device 140 (e.g., applications used, types ofinteractions with the applications, advertisements selected or mousedover, or newly installed applications) and with regards to location todetermine if there are any new merchants or merchant categories to addthe candidate sets. In one example, if a user has increased travel in acertain area, merchants or other entities in that area may be added tothe candidate set of merchants.

In certain exemplary embodiments, a model or set of rules is used togenerate the candidate set of merchants and the candidate set ofmerchant categories. In one example, the information in a user's profileis input to a model trained on using training data to generate thecandidate set of merchants and the candidate set of merchant categories.

General

The exemplary methods and blocks described in the embodiments presentedpreviously are illustrative, and, in alternative embodiments, certainblocks can be performed in a different order, in parallel with oneanother, omitted entirely, and/or combined between different exemplarymethods, and/or certain additional blocks can be performed, withoutdeparting from the scope and spirit of the invention. Accordingly, suchalternative embodiments are included in the invention described herein.For example, advertiser distribution system 120 may be combined with theadvertiser device 105 or the application provider device 170, wherebythe advertiser device 105 of the application provider device 170provides the advertisement selection information directly to the enduser device 140.

The invention can be used with computer hardware and software thatperforms the methods and processing functions described above. As willbe appreciated by those having ordinary skill in the art, the systems,methods, and procedures described herein can be embodied in aprogrammable computer, computer executable software, or digitalcircuitry. The software can be stored on computer readable media. Forexample, computer readable media can include a floppy disk, RAM, ROM,hard disk, removable media, flash memory, memory stick, optical media,magneto-optical media, CD-ROM, etc. Digital circuitry can includeintegrated circuits, gate arrays, building block logic, fieldprogrammable gate arrays (“FPGA”), etc.

Although specific embodiments of the invention have been described abovein detail, the description is merely for purposes of illustration.Various modifications of, and equivalent blocks corresponding to, thedisclosed aspects of the exemplary embodiments, in addition to thosedescribed above, can be made by those having ordinary skill in the artwithout departing from the spirit and scope of the invention defined inthe following claims, the scope of which is to be accorded the broadestinterpretation so as to encompass such modifications and equivalentstructures.

1. (canceled)
 2. A computer-implemented method, comprising, by acomputer: receiving, from an application executing on a mobile networkdevice, a current location of the mobile network device; identifying afirst merchant located proximal to the current location of the mobilenetwork device; identifying a second merchant located proximal to thecurrent location of the mobile network device; determining, from a userprofile of a user of the mobile network device, a first number of visitsby the user to the first merchant and a second number of visits by theuser to the second merchant; selecting, from an index, an advertisementof the first identified merchant or the second identified merchant basedon a difference between the first number of visits and the second numberof visits; and transmitting the selected advertisement to theapplication for display in the application executing on the mobilenetwork device.
 3. The computer-implemented method of claim 2, furthercomprising: receiving information regarding an advertisement with whichthe user interacted via the mobile network device, the advertisementbeing associated with a merchant; and adding information regarding themerchant associated with the advertisement with which the userinteracted to the user profile.
 4. The computer-implemented method ofclaim 2, further comprising formatting the advertisement to display (i)a single product available from one of the first merchant or the secondmerchant or (ii) products from both of the first merchant and the secondmerchant.
 5. The computer-implemented method of claim 2, furthercomprising formatting the advertisement to display a set of relatedproducts selected based on information stored in the user profile. 6.The computer-implemented method of claim 2, further comprisingformatting the advertisement based on an application category of themobile application.
 7. The computer-implemented method of claim 2,further comprising: determining a category of product associated witheach identified merchant; and adding information regarding the categoryof product to the user profile, wherein the selecting step furthercomprises selecting the advertisement from available advertisementsbased on merchant identity information and the category of product inthe user profile.
 8. The computer-implemented method of claim 2, furthercomprising: after transmitting the selected advertisement to theapplication: receiving a request for additional information, the requestbeing generated in response to an interaction with the advertisement atthe mobile network device; updating the index based on the interactionwith the advertisement; providing, to the mobile network device, theadditional information responsive to the request; and changing anaccount of the user based on one or more actions performed by the userat the mobile network device.
 9. A non-transitory computer readablemedium storing instructions that, when executed by one or morecomputers, cause the one or more computers to perform operationsincluding: receiving, from an application executing on a mobile networkdevice, a current location of the mobile network device; identifying afirst merchant located proximal to the current location of the mobilenetwork device; identifying a second merchant located proximal to thecurrent location of the mobile network device; determining, from a userprofile of a user of the mobile network device, a first number of visitsby the user to the first merchant and a second number of visits by theuser to the second merchant; selecting, from an index, an advertisementof the first identified merchant or the second identified merchant basedon a difference between the first number of visits and the second numberof visits; and transmitting the selected advertisement to theapplication for display in the application executing on the mobilenetwork device.
 10. The non-transitory computer readable medium of claim9, wherein the instructions cause the one or more computers to performoperations further comprising: receiving information regarding anadvertisement with which the user interacted via the mobile networkdevice, the advertisement being associated with a merchant; and addinginformation regarding the merchant associated with the advertisementwith which the user interacted to the user profile.
 11. Thenon-transitory computer readable medium of claim 9, wherein theinstructions cause the one or more computers to perform operationsfurther comprising formatting the advertisement to display (i) a singleproduct available from one of the first merchant or the second merchantor (ii) products from both of the first merchant and the secondmerchant.
 12. The non-transitory computer readable medium of claim 9,wherein the instructions cause the one or more computers to performoperations further comprising formatting the advertisement to display aset of related products selected based on information stored in the userprofile.
 13. The non-transitory computer readable medium of claim 9,wherein the instructions cause the one or more computers to performoperations further comprising formatting the advertisement based on anapplication category of the mobile application.
 14. The non-transitorycomputer readable medium of claim 9, wherein the instructions cause theone or more computers to perform operations further comprising:determining a category of product associated with each identifiedmerchant; and adding information regarding the category of product tothe user profile, wherein the selecting step further comprises selectingthe advertisement from available advertisements based on merchantidentity information and the category of product in the user profile.15. The non-transitory computer readable medium of claim 9, wherein theinstructions cause the one or more computers to perform operationsfurther comprising: after transmitting the selected advertisement to theapplication: receiving a request for additional information, the requestbeing generated in response to an interaction with the advertisement atthe mobile network device; updating the index based on the interactionwith the advertisement; providing, to the mobile network device, theadditional information responsive to the request; and changing anaccount of the user based on one or more actions performed by the userat the mobile network device.
 16. A system, comprising: a storagedevice; and a processor communicatively coupled to the storage device,the processor executing application code instructions that are stored inthe storage device to cause the system to perform operations including:receiving, from an application executing on a mobile network device, acurrent location of the mobile network device; identifying a firstmerchant located proximal to the current location of the mobile networkdevice; identifying a second merchant located proximal to the currentlocation of the mobile network device; determining, from a user profileof a user of the mobile network device, a first number of visits by theuser to the first merchant and a second number of visits by the user tothe second merchant; selecting, from an index, an advertisement of thefirst identified merchant or the second identified merchant based on adifference between the first number of visits and the second number ofvisits; and transmitting the selected advertisement to the applicationfor display in the application executing on the mobile network device.17. The system of claim 16, wherein the instructions cause the system toperform operations further comprising: receiving information regardingan advertisement with which the user interacted via the mobile networkdevice, the advertisement being associated with a merchant; and addinginformation regarding the merchant associated with the advertisementwith which the user interacted to the user profile.
 18. The system ofclaim 16, wherein the instructions cause the one or more computers toperform operations further comprising formatting the advertisement todisplay (i) a single product available from one of the first merchant orthe second merchant or (ii) products from both of the first merchant andthe second merchant.
 19. The system of claim 16, wherein theinstructions cause the system to perform operations further comprisingformatting the advertisement to display a set of related productsselected based on information stored in the user profile.
 20. The systemof claim 16, wherein the instructions cause the system to performoperations further comprising formatting the advertisement based on anapplication category of the mobile application.
 21. The system of claim16, wherein the instructions cause the system to perform operationsfurther comprising: determining a category of product associated witheach identified merchant; and adding information regarding the categoryof product to the user profile, wherein the selecting step furthercomprises selecting the advertisement from available advertisementsbased on merchant identity information and the category of product inthe user profile.
 22. The system of claim 16, wherein the instructionscause the system to perform operations further comprising: aftertransmitting the selected advertisement to the application: receiving arequest for additional information, the request being generated inresponse to an interaction with the advertisement at the mobile networkdevice; updating the index based on the interaction with theadvertisement; providing, to the mobile network device, the additionalinformation responsive to the request; and changing an account of theuser based on one or more actions performed by the user at the mobilenetwork device.